package com.ruoyi.drugSystem.service.impl;

/**
 * @author 努力的派大星
 * @version 1.0
 */

import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.drugSystem.domain.SysDrugClass;
import com.ruoyi.drugSystem.mapper.SysDrugClassMapper;
import com.ruoyi.drugSystem.service.ISysDrugClassService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 药品种类信息 服务层处理
 *
 * @author ruoyi
 */
@Service
public class SysDrugClassServiceImpl implements ISysDrugClassService
{
    @Autowired
    private SysDrugClassMapper drugClassMapper;



    /**
     * 查询药品种类信息集合
     *
     * @param drugClass 药品种类信息
     * @return 药品种类信息集合
     */
    @Override
    public List<SysDrugClass> selectDrugClassList(SysDrugClass drugClass)
    {
        return drugClassMapper.selectDrugClassList(drugClass);
    }

    /**
     * 查询所有药品种类
     *
     * @return 药品种类列表
     */
    @Override
    public List<SysDrugClass> selectDrugClassAll()
    {
        return drugClassMapper.selectDrugClassAll();
    }

    /**
     * 通过药品种类ID查询药品种类信息
     *
     * @param drugClassId 药品种类ID
     * @return 角色对象信息
     */
    @Override
    public SysDrugClass selectDrugClassById(Long drugClassId)
    {
        return drugClassMapper.selectDrugClassById(drugClassId);
    }



    /**
     * 校验药品种类名称是否唯一
     *
     * @param drugClass 药品种类信息
     * @return 结果
     */
    @Override
    public boolean checkDrugClassNameUnique(SysDrugClass drugClass)
    {
        Long drugClassId = StringUtils.isNull(drugClass.getDrugClassId()) ? -1L : drugClass.getDrugClassId();
        SysDrugClass info = drugClassMapper.checkDrugClassNameUnique(drugClass.getDrugClassName());
        if (StringUtils.isNotNull(info) && info.getDrugClassId().longValue() != drugClassId.longValue())
        {
            return UserConstants.NOT_UNIQUE;
        }
        return UserConstants.UNIQUE;
    }

    /**
     * 校验药品种类编码是否唯一
     *
     * @param drugClass 药品种类信息
     * @return 结果
     */
    @Override
    public boolean checkDrugClassCodeUnique(SysDrugClass drugClass)
    {
        Long drugClassId = StringUtils.isNull(drugClass.getDrugClassId()) ? -1L : drugClass.getDrugClassId();
        SysDrugClass info = drugClassMapper.checkDrugClassCodeUnique(drugClass.getDrugClassCode());
        if (StringUtils.isNotNull(info) && info.getDrugClassId().longValue() != drugClassId.longValue())
        {
            return UserConstants.NOT_UNIQUE;
        }
        return UserConstants.UNIQUE;
    }



    /**
     * 删除药品种类信息
     *
     * @param drugClassId 药品种类ID
     * @return 结果
     */
    @Override
    public int deleteDrugClassById(Long drugClassId)
    {
        return drugClassMapper.deleteDrugClassById(drugClassId);
    }

    /**
     * 批量删除药品种类信息
     *
     * @param drugClassIds 需要删除的药品种类ID
     * @return 结果
     */
    @Override
    public int deleteDrugClassByIds(Long[] drugClassIds)
    {
        for (Long drugClassId : drugClassIds)
        {
            SysDrugClass drugClass = selectDrugClassById(drugClassId);
//            if (countUserDrugClassById(drugClassId) > 0)
//            {
//                throw new ServiceException(String.format("%1$s已分配,不能删除", drugClass.getDrugClassName()));
//            }
        }
        return drugClassMapper.deleteDrugClassByIds(drugClassIds);
    }

    /**
     * 新增保存药品种类信息
     *
     * @param drugClass 药品种类信息
     * @return 结果
     */
    @Override
    public int insertDrugClass(SysDrugClass drugClass)
    {
        return drugClassMapper.insertDrugClass(drugClass);
    }

    /**
     * 修改保存药品种类信息
     *
     * @param drugClass 药品种类信息
     * @return 结果
     */
    @Override
    public int updateDrugClass(SysDrugClass drugClass)
    {
        return drugClassMapper.updateDrugClass(drugClass);
    }
}
